package com.ce.pms.house.dao.impl;

import java.util.List;

import org.hibernate.Query;

import com.ce.pms.base.dao.impl.PmsBaseDaoImpl;
import com.ce.pms.house.dao.IManageAreaDao;
import com.ce.pms.house.model.CompanyDomain;
import com.ce.pms.house.model.ManageOrgDomain;
import com.ce.pms.house.model.Precinct;
import com.ce.util.BlankUtil;
import com.sitechasia.webx.core.support.Page;
/**
 * 功能描述: 管理区域设置DAO实现类
 * <p>版权所有：中企动力
 * <p>未经本公司许可，不得以任何方式复制或使用本程序任何部分
 *
 * @author  胡煦
 * Create on:2008-7-7
 * Edit author:
 * Edit on:
 * 修改原因：

 */

public class ManageAreaDaoImpl extends PmsBaseDaoImpl<CompanyDomain> implements IManageAreaDao{

	/**
	 * 方法描述: 根据管理处ID查询管理处实体
	 * @author 胡煦
	 * Create on:2008-7-8
	 * @param id
	 * @return ManageOrgDomain
	 * Edit author:
	 * Edit on:
	 * 修改原因：
	 */
	public ManageOrgDomain getManageOrgById(Long id) {
		if(BlankUtil.isBlank(id)){
			return null;
		}
		ManageOrgDomain manageOrgDomain = null;

		String queryStr = "FROM ManageOrgDomain mo WHERE mo.keyword = ? ";

		Query query = super.createQuery(queryStr, new Object[]{id});

		manageOrgDomain = (ManageOrgDomain)query.uniqueResult();

		return manageOrgDomain;
	}
	/**
	 * 方法描述: 根据管理区ID查询管理区实体
	 * @author 胡煦
	 * Create on:2008-7-8
	 * @param id
	 * @return Precinct
	 * Edit author:
	 * Edit on:
	 * 修改原因：
	 */
	public Precinct getPrecinctById(Long id) {
		if(BlankUtil.isBlank(id)){
			return null;
		}
		Precinct precinct = null;

		String queryStr = "FROM Precinct pi WHERE pi.keyword = ? ";

		Query query = super.createQuery(queryStr, new Object[]{id});

		precinct = (Precinct)query.uniqueResult();

		return precinct;
	}
	/**
	 * 方法描述: 根据物业公司ID查询其下所有物业管理处
	 * @author 胡煦
	 * Create on:2008-7-8
	 * @param id
	 * @return List<ManageOrgDomain>
	 * Edit author:
	 * Edit on:
	 * 修改原因：
	 */
	public List<ManageOrgDomain> getAllManageOrgByCompanyId(Long id) {
		if(BlankUtil.isBlank(id)){
			return null;
		}
		List<ManageOrgDomain> manageOrgDomainList = null;

		String queryStr = "FROM ManageOrgDomain mo WHERE mo.company.keyword = ? order by mo.sysInfo.sysDate";

		Query query = super.createQuery(queryStr, new Object[]{id});

		manageOrgDomainList = (List<ManageOrgDomain>)query.list();

		return manageOrgDomainList;
	}
	  /**
	 * 方法描述: 根据物业公司ID分页查询其下所有物业管理处
	 * @author 胡煦
	 * Create on:2008-7-3
	 * @param companyId
	 * @param pageNo
	 * @param pageSize
	 * @return page
	 * Edit author:
	 * Edit on:
	 * 修改原因：
	 */
	 public Page queryPageManageOrg(Long companyId, int pageNo, int pageSize) {
		 if(BlankUtil.isBlank(companyId)){
				return null;
			}
		 String queryStr =  "FROM ManageOrgDomain mo WHERE mo.company.keyword = ? order by mo.sysInfo.sysDate";

		 return this.pagedQueryByPageNo(queryStr, pageNo, pageSize,new Object[]{companyId});

	 }


}
